//! 硬件抽象层（Hardware Abstraction Layer）
//! 
//! 提供对底层硬件的直接访问接口，是libOS架构的核心组件。

pub mod cpu;
pub mod memory;
pub mod devices;
pub mod interrupts;

use crate::utils::error::YayaError;

/// 硬件抽象层管理器
pub struct HalManager;

impl HalManager {
    /// 初始化硬件抽象层
    pub fn init() -> Result<(), YayaError> {
        cpu::init()?;
        memory::init()?;
        interrupts::init()?;
        devices::init()?;
        Ok(())
    }
    
    /// 关闭硬件抽象层
    pub fn shutdown() -> Result<(), YayaError> {
        devices::shutdown()?;
        interrupts::shutdown()?;
        memory::shutdown()?;
        cpu::shutdown()?;
        Ok(())
    }
}